package testUnit;
import static org.junit.Assert.*;
import org.junit.*;
import classes_metier.*;
public class PCTest {
	Magasin mag1;
	PC pc1, pc2, pc3;

	@Before
    public void setUp(){
    	mag1 = new Magasin(1, "Paris 17");
    	pc1 = new PC("Asus", "Tartempion", "A306", mag1);
    	pc2 = new PC("Vaio", "Trucmuche", "V726", mag1);
    	pc3 = new PC("HP", "Tartempion", "H289", mag1);
    	mag1.stocker(pc1);	mag1.stocker(pc2);	mag1.stocker(pc3);
    }
	
	/* US02 - TST03: le dernier PC du reseau doit avoir comme suivant le premier PC 
	 * US02 - TST05: pour faire partie du reseau, un PC doit etre sorti du stock du magasin
	 *  auquel il appartient.*/
	@Test
	public void testEtablirReseau(){
		// Avant de destocke du magasin, on ne peut pas installer les pcs dans le reseau
		assertFalse(pc1.setSuivant(pc2));
		assertFalse(pc2.setSuivant(pc3));
		assertFalse(pc3.setSuivant(pc1));		
		etablirReseau();
	}
	
	public void etablirReseau(){
		mag1.destocker(pc1.getNumSerie());
		mag1.destocker(pc2.getNumSerie());
		mag1.destocker(pc3.getNumSerie());
		
		assertTrue(pc1.setSuivant(pc2));
		assertTrue(pc2.setSuivant(pc3));
		assertTrue(pc3.setSuivant(pc1));
	}
	/* US02 - TST04: un jeton est transmis dans la boucle entre les PCs, 
	 * si un PC n'a pas le jeton, il ne peut pas communiquer */
	@Test
	public void testCommunication(){
		etablirReseau();
		pc1.setJeton(true);
		System.out.println(pc2.getNumSerie());
		assertTrue(pc1.communicate("PC1 salut a tous !", "V726"));
	}
}
